package com.usian.apis.admin;

import com.usian.model.admin.dtos.ChannelDto;
import com.usian.model.admin.pojos.AdChannel;
import com.usian.model.common.dtos.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

/**
 * 频道管理api接口
 */
@Api(value = "频道管理",tags = "channel",description = "频道管理API")
public interface AdChannelControllerApi {
    /**
     * 分页查询
     */
    @ApiOperation(value = "查询频道信息",notes = "根据名称分页查询频道列表")//描述一个类的一个方法，或者说一个接口
    @ApiImplicitParam(name = "channelDto",type = "ChannelDto",value = "查询名称")//一个请求参数
    /**
     * 多个参数用下面的
     * @ApiImplicitParams({
     *      @ApiImplicitParam(name = "page",type = "Integer",value = "页码")
     *      @ApiImplicitParam(name = "size",type = "Integer",value = "条数")
     * })
     */
    public ResponseResult findByNameAndPage(ChannelDto channelDto);//通过继承拿到了所有参数

    /**
     * 添加频道信息
     * @param adChannel
     * @return
     */
    @ApiOperation("保存频道信息")
    @ApiImplicitParam(name = "adchannel",type = "Adchannel",value = "保存的频道信息")
    public ResponseResult save(AdChannel adChannel);

    /**
     * 根据id查询对应频道信息
     * @param id
     * @return
     */
    @ApiOperation("根据id查询频道信息")
    @ApiImplicitParam(paramType = "path",required = true)
    public ResponseResult findById(Integer id);

    /**
     * 根据id修改对应频道信息
     * @param adChannel
     * @return
     */
    @ApiOperation("修改频道信息")
    public ResponseResult update(AdChannel adChannel);

    /**
     * 根据id 删除数据
     * @param id
     * @return
     */
    @ApiOperation("删除频道信息")
    public ResponseResult delete(Integer id);

    /**
     * 根据id批量删除
     * @param ids
     * @return
     */
    @ApiOperation("根据ids批量删除频道信息")
    public ResponseResult deletes(Integer[] ids);

    /**
     * 查询所有频道
     * @return
     */
    public ResponseResult findAll();
}
